Adaptive router architecture using logical internal addressing

ABSTRACT

A method and a related router comprising a network interface, a logical addressing module and a forwarding element card. The logical addressing module is capable of maintaining at least one local table associating at least one card of the router with at least a portion of at least one service provided by the router. The forwarding element card is capable of receiving a packet stream on the network interface, detecting that the packet stream requires further treatment from a further card of the router and, upon detection, consulting the local table to find an identifier, to which the further card is linked, based on information found in the packet stream before forwarding the packet stream toward the further card.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The invention relates to routers and, more specifically, to a newadaptive router architecture.

2. Description of the Related Art

Researchers and designers face major challenges when researching,studying, and developing new software features to extend the set ofInternet Protocol (IP) services or functions that current commercialrouters support beyond the usual forwarding service. This could be forexperimental system, pilot network deployment or field implementation.The main problem in developing, validating and deploying new IP servicesstems from the lack of open and programmable routers. This could beparticularly useful to experiment new IP services, for new IP servicevalidation as well as for complete network implementation. Such anarchitecture, in order to be effectively used as described, shouldfurther have the following characteristics:

Scalable;

Dependable (i.e. no single point of failure); and

Predictable (e.g. in terms of performance).

However, today's commercial routers, whether they are hardware based orsoftware based, do not have the necessary elements and interfaces thatwould allow new IP services and applications to run thereon. As aresult, carrying out a deployment in a production network requiresinvolvement of the router vendor to develop and implement the necessaryIP services and protocols. A router vendor is not likely to invest therequired resources in the development and implementation of newfeatures, except if it sees major compensation in return for the effort.Still when router vendors can be persuaded to implement new features,the process to change their implementation is laborious andtime-consuming. Likewise, network operators are unlikely to ask for newfeatures unless they have trust in the research results or can conducttrials in their own network to validate the results.

As can be appreciated, there is currently a need for an open andprogrammable router architecture. The present invention provides such asolution.

SUMMARY OF THE INVENTION

A first aspect of the present invention is directed to a routercomprising a network interface, a logical addressing module and aforwarding element card. The logical addressing module is capable ofmaintaining at least one local table associating at least one card ofthe router with at least a portion of at least one service provided bythe router. The forwarding element card is capable of receiving a packetstream on the network interface, detecting that the packet streamrequires further treatment from a further card of the router and, upondetection, consulting the local table to find an identifier, to whichthe further card is linked, based on information found in the packetstream before forwarding the packet stream toward the further card.

A second aspect of the present invention is directed to a method forproviding a network service in a router comprising the steps ofreceiving a packet stream on at least one network interface of therouter in a forwarding element card, detecting that the packet streamrequires further treatment from one of at least another card of therouter, upon detection, consulting a local table associating the atleast another card of the router with at least a portion of the networkservice provided by the router in order to find an identifier to whichthe at least another card is associated based on information found inthe packet stream and forwarding the packet stream toward the at leastanother card within the router.

A third aspect of the present invention is directed to a forwardingelement card located in a router providing at least one network service.The forwarding element card is connected to at least one networkinterface of the router and comprises at least one local tableassociating at least another card of the router with at least a portionof the at least one service provided by the router. It further comprisesa logical addressing module capable of maintaining the at least onelocal table and a forwarding component capable of receiving a packetstream on the at least one network interface, detecting that the packetstream requires further treatment from one of the at least another cardof the router, upon detection, consulting the local table to find anidentifier to which the at least another card is associated based oninformation found in the packet stream and forwarding the packet streamtoward the at least another card within the router.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete understanding of the present invention may be had byreference to the following Detailed Description when taken inconjunction with the accompanying drawings wherein:

FIG. 1 is a schematic representation of an exemplary router architecturein accordance with the teachings of the present invention;

FIG. 2 is an exemplary modular representation of a processing element inaccordance with the teachings of the present invention;

FIG. 3 is an exemplary modular representation of a forwarding element inaccordance with the teachings of the present invention;

FIG. 4 is an exemplary modular representation of a switching elementcard in accordance with the teachings of the present invention;

FIG. 5 is an exemplary logical representation of an internal packet inaccordance with the teachings of the present invention;

FIG. 6 is an exemplary finite state machine executed on a first and asecond distinct hardware modules in accordance with the teachings of thepresent invention; and

FIG. 7 is an exemplary method of service provisioning in accordance withthe teachings of the present invention

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present invention presents at least five major improvements over theprior art solutions. A first improvement comes from the internalarchitecture of the router. The basic principle of this improvement isto split the responsibilities usually taken care by one entity inconventional routers over multiple simple components. For instance, arouter architecture based on the present invention could have forwardingelements connected to the network interfaces of the router, processingelements connected to the forwarding elements through switchingelements. The forwarding elements handle the tasks at high speed (e.g.wire speed of 10 Gigabit per second) and can delegate the tasks that arenon-time critical to processing elements. The invention further suggestsusing switching elements to handle the transfer of information betweenthe various elements of the router (e.g. between the forwarding elementsand the processing elements). This enables an abstraction of theresources in both directions. For instance, when a forwarding elementhas information to send to a processing element, it simply sends theinformation to the switching element, which acts as a proxy of theprocessing element. The same concept applies when any processing elementneeds to send information to any forwarding element.

A second improvement is implemented in the switching elements that canapply a rate limiting mechanism between the forwarding elements and theprocessing elements. Therefore, the forwarding elements does not have totake care of the treatment capacity of the processing elements since theswitching elements will drop whatever is in excess of the processingelements treatment capacity. This assumes that the processing elementshave lower data rate capabilities than the forwarding elements, which isusually the case because of the complexity of the functions implementedin the processing elements. However, if the transfer occurs between twoforwarding elements having similar capabilities through a switchingelement, than the rate limiting mechanism is simply not applied.

A third improvement is implemented by local tables maintained by thevarious elements of the router, but more particularly by the forwardingelements. The local tables are used to efficiently forward the trafficbetween the elements of the router (no matter what elements) based oncharacteristics of the traffic and of the service provisioning. Forinstance, traffic related to maintenance of a routing protocol (or anyother service) needs to be directed to a specific processing element.This association “service-element” corresponds to an entry in a localtable maintained by the forwarding element connected to the networkwhere the routing protocol is used. Upon reception of correspondingtraffic, the forwarding element simply detects the type of traffic andforwards the traffic to the processing element mentioned in the table.Furthermore, if the router supports the virtual router concept, then theinformation necessary to provide the virtual router services (e.g. inthe local tables) is distributed only on elements of the router thatneed to have access to such information. Thereby, when the given virtualrouter scales and related information becomes heavier, only the elementslinked thereto are affected.

A fourth improvement is implemented by using the concept of local tabledifferently and by adding functionalities thereto. The local table canbe used to maintain information related to a group of elementsassociated under a common identifier instead of an identifierrepresenting a single element. This enables hot-standby redundancy aslong as the essential information associated with the service providedby the element is present in all elements of the group. Theresponsibility of identifying a primary element actually providing theservice within a group may be devoted to the members of the group (i.e.dynamically), to a configuration or to a further element of the router,which is capable of updating the elements of the group onto which one isthe current primary element. This scheme can therefore provide loadbalancing in implementation where the primary element is chosendynamically. Furthermore, in such a scheme, a redundant element can beused by multiple primary elements, but not necessarily by all. Forinstance, each forwarding elements in a router could each have ahot-standby forwarding element while the processing elements would sharea common hot-standby processing element. Thereby, the number of variouselements necessary in a router to provide redundancy and load balancingis limited.

A fifth improvement suggests that multiple actions of a serviceapplicable a given packet stream can be performed in multiple elementsof the router in a chained manner. This can be compared to a finitestate machine where the various states are performed on differentphysical or virtual pieces of hardware. However, by doing so, someinformation used on the first element of the chain may not be accessibleto the second element or may require repetition of calculation alreadydone in the first element. Therefore, the invention suggests using ameta-data header on each packet of the packet stream during the statetransition to transfer information needed for service provisioning sincethe information is difficult or impossible to obtain from the nextelement of the chain. In addition, the meta-data header describes thenext action to provide to the packet.

Reference is now made to the drawings where FIG. 1 shows an exemplaryrouter 100 architecture in accordance with the teachings of the presentinvention. FIG. 1 shows the main functional components of the router 100architecture and their relationships. These components can be linked indifferent topologies for flexible service and packet processing. FIG. 1presents an example of such a topology and should be seen as such. Usingthe topology of FIG. 1, further exemplary implementations of the presentinvention will also be shown.

FIG. 1 shows the router 100 with a plurality of network interfaces105.1-105.p and four main types of functional components: a plurality ofProcessing Elements (PE) 140.1-140.n, a Switching Element (SE) 130.1, aService Element (SrE) 120.1 and a plurality of Forwarding Elements (FE)110.1-110.m. The architecture allows multiple instances of SE, PE, SrEand FE to co-exist. On FIG. 1 and in the reference signs thereof,letters are used to represent the fact that a large number of componentsof each type could be present in the router 100. Moreover, only oneinstance of some components, such as the SrE 120.1, is represented onFIG. 1. It should be readily understood that this was done for claritypurposes and does not limit the number of components of any type to thenumber presented on FIG. 1. The PEs 140.1-140.n are responsible foroperations such as signalling, control and routing protocols, and theimplementation of management protocols. FEs 110.1-110.m use theunderlying hardware to provide per-packet processing and handling asdirected, for instance, by the PEs 140.1-140.m. The SE 130.1 enables thePEs 140.1-140.n and FEs 110.1-110.m to communicate between themselvesand with each other. A first SE (e.g. 130.2, not shown) could be usedfor communication between the PEs 140.1-140.n while a second SE (e.g.130.1) could be used between the FEs 110.1-110.m. The SrE 120.1 is aparticular type of the FEs 110.1-110.m that does not have direct accessto one of the network interfaces 105.1-105.p, but share, otherwise,substantially the same hardware architecture and raw capabilities (e.g.processing capability rather than specific service provisioning). Itshould also be further noted that a single network interface 105.2 couldbe connected to multiple FEs 110.1-110.m. A further network interface105.3 is also shown connected to the FEs 110.1-110.m via an InterfaceManager 160.1, which can be used to manage the connection of the networkinterface 105.3 to at least two of the FEs 110.1-110.m.

The network interfaces 105.2 and 105.3 enable redundancy of theforwarding elements in various configurations. For instance, the networkinterface 105.2, when connected to two forwarding elements, provides aredundancy scheme wherein, for N forwarding elements, 2N cards arenecessary. The two forwarding elements need to coordinate betweenthemselves which one will act as the primary forwarding element whilethe second one is in a hot-standby mode. The network interface 105.3 canbe programmed to provide an optimal redundancy scheme wherein, for Nforwarding elements, N+1 cards are necessary. In such a scheme, the “+1”forwarding element is configured as the standby card for all theforwarding element and the Interface Manager 160.1 coordinates trafficsent to the hot-standby card. Likewise, a redundancy scheme wherein, forN forwarding elements, N+M cards can also be used. This enables somecards to have a hot-standby element while some others could rely on acommon hot-standby element. Furthermore, using the same architecture,load balancing can be provided if the selection of a primary element isperformed dynamically. For instance, based on the load of the networkinterface 105.3, the Interface Manager 160.1 can switch packets betweenmore than one of the forwarding elements connected thereto.

In order to support any of the redundancy schemes seamlessly for allapplications (local and remote), the cards of the router 100 can begrouped under a common identifier and addressed therewith. For instance,the two forwarding elements connected to the network interface 105.2 canbe grouped under a common channel identifier while they each have aspecific element identifier. Therefore, when a further card of therouter 100 needs to send information on the network interface 105.2, itaddresses it to the channel identifier and it is served by one member ofthe group. Coordination needs to be done between all elements groupedunder the channel identifier to know which one will serve the requests.This coordination can be done internally (e.g. under conditions),through an external intelligent element (e.g. the Interface manager160.1) or a setting entered upon configuration of the router 100. Thisapproach also enables all types of element of the router to have aredundant element (and not only the forwarding elements). For instance,a switching element having a second standby element could provide proxyfunctionality under a common channel identifier (even though they havedistinct element identifiers). The router 100 could then be arranged sothat only the common identifier is thereafter used to access the proxyfunctionality. The proxy functionality, through the channel identifier,could then be linked to two processing elements (or two groups ofprocessing elements) using solely the channel identifier. Therefore, aforwarding element that needs to reach a processing element will use thechannel identifier of the proxy instead of one of the elementidentifier.

The Interface Manager 160.1 is shown on FIG. 1 as an external componentto the router 100, but could also be integrated into the router 100without affecting the teachings of the invention.

The logical interactions between these different functional elements areidentified by arrows on FIG. 1. The separation of the FEs 110.1-110.mfrom the PEs 140.1-140.n adds several benefits to the router 100architecture. It allows PEs 140.1-140.n and different types of FEs110.1-110.m to interoperate with each other, and thus it becomespossible, for instance, to integrate PEs 140.1-140.n and FEs 110.1-110.mfrom different vendors in the router 100. This turns into a lot moredesign choices and flexibility when it comes to network serviceprovisioning. Scalability is also easily provided by this architecturesince additional forwarding or processing elements can be added withoutthe need for major system upgrades.

The router 100 may further support the virtual router concept, whichenables subdivision and virtualization of the router 100's resourcesinto a plurality of virtual routers, each providing servicesindependently. Each virtual router may involve many elements and manydifferent types of elements. For instance, a switching element could belinked to two different virtual routers together with a dedicatedforwarding element and a processing element shared among three virtualrouters. Nevertheless, a virtual router is linked to a limited number ofelements and network interfaces. Thus, instead of distributing theinformation needed for the proper functioning of the virtual router onall elements, the present invention distributes it only to the relevantelements, thereby optimizing the resource consumption of the router 100.As a direct consequence, scalability of the router 100 is improved.

Processing Element

Reference is now made concurrently to FIG. 1 and FIG. 2, which shows anexemplary modular view of a PE (e.g. 140.2) in accordance with theteachings of the present invention. The PEs 140.1-140.n are mainlyresponsible for operations such as routing protocols like RoutingInterchange Protocol (RIP), Open Shortest Path First (OSPF) and BorderGateway Protocol (BGP), and control and signalling protocols such asLabel Distribution Protocol (LDP) for Multiple Protocol Label Switching(MPLS). Based on the information obtain through the control processing;the PEs 140.1-140.n dictate the packet forwarding behaviour of the FEs110.1-110.m (e.g. addition of new routes). The exchange of controlinformation is performed directly between the FEs 110.1-110.m and PEs140.1-140.n based on, for instance, the Forwarding and Control ElementSeparation (ForCES) protocol.

The architecture supports multiple PEs 140.1-140.n, which may be usedfor redundancy, load sharing, distributed control, or any otherpurposes. PEs 140.1-140.n are wholly responsible for coordinatingamongst them thereby providing consistency and synchronization.

The PE 140.2 of FIG. 2 shows, as an example, an Advanced Function140.2.1.1, a Control Component 140.2.1.2, a Forwarding Component140.2.1.3, a Routing Protocol Component 140.2.1.4 and a ManagementModule 140.1.1.5. All these components are shown, as an exemplaryimplementation, in the processing unit 140.2.1 of the PE 140.2. TheAdvanced Function 140.2.1.1 implements the functions of the router 100delegated to the PE 140.2 that do not have specific links to usualservices provided by prior art routers (e.g. linked to new servicedeployment). The Control Component 140.2.1.2 is able to control thebehaviour of the PE 140.2 as well as other elements of the router 100.The Forwarding Component 140.2.1.3 treats traffic received from aForwarding Element (possibly through a switching element). TheForwarding Component 140.2.1.3 of the PE 140.2 is usually used for lowrate traffic. The Routing Protocol Component 140.2.1.4 usually managesinformation related to the routing protocols supported by the router 100(e.g. routing tables updates). The Management Module 140.2.1.5 isresponsible for implementation of the network management protocols ofthe router 100. For instance, the Management Module 140.2.1.5 triggersand responds to alarms and other events related to network management.Similar functions are also implemented in further elements of the router100. Usually, components sharing substantially the same purpose arenamed similarly, even though their capability could be of differentrange.

FIG. 2 further shows an internal interface 192 connected to the PE 140.2through the processing unit 140.2.1. The internal interface 192 is usedto communicate internally with the other elements of the router 100. Theinternal interface is also shown on other elements of the router 100 forthe same purpose. Any other means of communication between the elementscould be used without departing from the teachings of the presentinvention.

Forwarding Element/Service Element

Reference is now made concurrently to FIG. 1 and FIG. 3, which shows anexemplary modular view of a FE (e.g. 110.2) in accordance with theteachings of the present invention. FEs 110.1-100.m perform per-packetprocessing and handling as directed by PEs 140.1-140.m. Control packets(such as RIP and OSPF messages) are redirected by the receiving FE (e.g.110.1) to the responsible PE (e.g. 140.1) directly from the FE 110.1 tothe PE 140.1. FEs 110.1-110.m communicate with one or more PEs140.1-140.n. FEs 110.1-110.m have no notion of PE redundancy, loadsharing, or distributed control since such functionalities are likely tobe implemented in a switching element. The FEs 110.1-110.m are kept assimple and efficient as possible so that they focus their resources onthe packet processing functions.

The architecture supports multiple FEs 110.1-110.m. When multiple FEs110.1-110.m are present, packets may arrive through one FE (e.g. 110.2)and leave via a different FE (e.g. 110.3). For instance, packets thatenter via the FE 110.2 and leave via the FE 110.3 are transferred via aswitching element through internal interfaces.

Each of these FEs 110.1-110.m may potentially have a different set ofcapabilities, with different media interfaces. FEs 110.1-110.m mayexpress their capabilities to PEs 110.1-110.n. A packet processingoperation may need multiple FE capabilities. In order to accomplish fullcapabilities, one FE (e.g. 110.4) may feedback to another FE (e.g.110.5) after partial processing. FEs 110.1-110.m are connected indifferent kinds of topologies and packet processing may spread acrossseveral FEs 110.1-110.m in the topology.

As mentioned earlier, the SrE 120.1 of the router 100 is, in mostimplementation, has programmable capabilities equivalent to those of aFE without the connection to one or more network interfaces 105.1-105.por without the use of such connections, even if present. On FIG. 3, thisis represented by the doted line of the reference number of the networkinterface 105.2.

In an exemplary implementation of the present invention, the router 100provides at least one network service using, among other elements, aforwarding element card (e.g. 110.3) connected to a network interface(e.g. 105.2). The forwarding element 110.3 comprises at least one localtable 110.3.3.1-110.3.3.2 associating at least another card of therouter 100 with at least a portion of the service provided by the router100. The other card could be, for instance, a processing element card(e.g. 140.3) or a further forwarding element card (e.g. 110.4). Theforwarding element card 110.3 also comprises a logical addressing module110.3.3 capable of maintaining the local table 110.3.3.1-110.3.3.2. anda forwarding component 110.3.1.1-110.3.2.1. The forwarding component110.3.1.1-110.3.2.1 is capable of receiving a packet stream on the atleast one network interface 105.2, detecting that the packet streamrequires further treatment from another card of the router 100,consulting the local table 110.3.3.1-110.3.3.2 to find an identifier towhich the other card is associated based on information found in thepacket stream and forwarding the packet stream toward the other cardwithin the router 100. The forwarding component 110.3.1.1 is likely tobe used for time critical applications since it is connected to thenetwork processing unit 110.3.1 of the forwarding element card 110.3.Likewise, the forwarding component 110.3.2.1 is likely to be used fornon-time critical applications since it is connected to the processingunit 110.3.2 of the forwarding element card 110.3.

A control component 110.3.2.2 may further be present in the processingunit 110.3.2. The control component is likely to be used forcommunication related to a function module 110.3.4 exchanged with aprocessing elements (e.g. 140.5). The communication can be in eitherdirection. For instance, a communication can occur if the forwardingelement needs to update a processing element in relation to signalingtraffic (e.g. network management events, information related to anotheradvanced function 110.3.4.2 of the forwarding element 110.3). Acommunication can also occur if the processing element card 140.5 sendsan update, for instance, of a routing table 110.3.4.1 maintained in thefunction module 110.4 of the forwarding element card 110.3.

Switching Element

Reference is now made concurrently to FIG. 1 and FIG. 4, which shows anexemplary modular representation of a switching element card 120.1 inaccordance with the teachings of the present invention. Since theforwarding elements 110.1-110.m and processing elements 140.1-140.n donot have the same treatment capabilities, there could be a vulnerabilityof the router 100 to a denial-of-service attack targeting a processingelement card (e.g. 140.6) through a forwarding element (e.g. 110.6). Inorder to protect the router 100 against such an attack, the switchingelement card 120.1 can be used to provide a rate limiting mechanismtherebetween. In order to do so, the switching element card 120.1 needsto comprise a switching unit 120.1.1 capable of receiving a packetstream from the forwarding element card 110.6 of the router 100 at afirst rate, determining that the packet stream is to be forwarded to afurther card of the router. If the further card has a treatment ratelower than the first rate (e.g. the further card is the processingelement card 140.6), passing the packet stream to a rate limitingmechanism 120.1.2 before forwarding the packet stream to the furthercard. Optionally, the switching unit 120.1.1 can be further capable offorwarding the packet stream to the further card without passing thepacket stream to a rate limiting mechanism if the further card does nothave a treatment rate lower than the first rate (e.g. the further cardis another forwarding element card 140.7 or a service element card120.2).

Physical Architecture

As an exemplary implementation, the PEs 140.1-140.n can be mapped toprocessor blades while the FEs 110.1-110.m can be mapped to either linecards or service blades. Processor blades use general-purpose processorswhereas the line cards and service blades use network processor andgeneral-purpose processor. The SE 120.1 can be mapped to the switchblade, which provides through a backplane the physical interconnect forall the blades in the system.

Software Components

Every packet in the router 100 belongs to a flow; every flow is part ofa service. An IP service is the treatment of an IP packet within theroute 100. This treatment is provided by a combination of differentsoftware components that run both on the PEs 140.1-140.n and the FEs110.1-110.m. For instance, the time span of a service is from the momentwhen the packet arrives on one of the network interfaces 105.1-105.p tothe moment that it leaves the router 100, again, on one of the networkinterfaces 105.1-105.p.

Control components running on PEs 140.1-140.n define the end-to-end pathcontrol for a given service by running control/signalling protocol andmanagement applications. These components then define the behaviour ofany given FE (e.g. 110.6) for a specified packet.

The FEs 110.1-110.m are the first entity encountered by incoming packetstreams. The FE's (e.g. 140.7) service-specific component manipulatesthe packet to provide it with a treatment to achieve an IP service, asdefined by the control components for that IP service. Differentservices will utilize different components. Components may be chainedacross one or several FEs (e.g. 140.7, 140.8 and 140.9) to achieve amore complex service.

Distributed Finite State Machine

When a service provided by the router 100 is provided by multipleelements of the router in a chained manner, some information used on thefirst element of the chain may not be accessible to the second elementor may require repetition of calculation already done in the firstelement. Therefore, the invention suggests using a meta-data header oneach packet of the packet stream during the state transition to transferinformation needed for service provisioning since the information isdifficult or impossible to obtain from the next element of the chain. Inaddition, the meta-data header describes the next action to provide tothe packet.

FIG. 5 shows an exemplary logical representation of an internal packet600 formed by an original packet 610 to which a metaheader 620 has beenadded. The metaheader 620 is typically used in the router 100 toefficiently provide information otherwise hardly obtainable from thefurther card and to indicate efficiently to the further card what needsto be done with the joint original packet 610. It could, for instanceindicate, an internal address of the a futerh element of the router 100,a Virtual Router id, an Application id, a Function id and/or an Actionid. As an example, the Virtual Router id can be used to indicate to thefurther card to which particular Virtual Router the packet needs to besent. The Application or Function ids could be used to indicate whichservice of the router 100 needs to be provided or updated and the Actionid could indicate the next step to be applied to the original packet 610to further provide a service of the router 100.

Reference is now made to FIG. 6, which shows an exemplary finite statemachine for service provisioning. The finite state machine is executedon a first 710 and a second 720 hardware modules in accordance with theteachings of the present invention. It should be noted that the twomodules 710 and 720 do not share a common memory. In such a case, afirst transition 730 t between a first state and a second state of thefinite state machine from the first module 710 to the second module 720is performed by sending local information 730 i of the first module 710toward the second module 720. The local information at least indicatesthe second state of the finite state machine. The local information 730i could further comprises results of the first state especially if theresults of the first state are obtained by the first module 710 usinginformation unavailable to the second module 720. The same conceptapplies for an eventual second transition 740 t from the second module720 to the first module 710 with local information 740 i of the secondmodule 720. Of course, the same concept can be generalized to any numberof modules. Furthermore, in some state machines, some transitions couldbe performed in a classic manner if some modules share a common memorywhile other transitions could use the present teachings if other moduledo not share a common memory.

For instance, in an exemplary implementation, the forwarding element,following reception of a packet stream, could detect that a furtheraction is necessary to provide the service thereto. Furthermore, theforwarding element could further detect that the further action cannotbe performed in the forwarding element. Thereafter, it sends the packetstream to a further element of the router by adding a meta-data headerto each packet of the packet stream, wherein the meta-data headercontains an identification of the further action. The meta-data headercould also contain information available locally to the forwardingelement that would be useful for the further card to perform the furtheraction and that would otherwise not be available thereto. Likewise, ifthe forwarding element performed computation on the packet stream, itmay further insert the results thereof in the meta-data header if it isuseful for the further card to perform the further action.

In one exemplary implementation, the router 100 architecture comprisesat least one network interface (e.g. 105.2), a plurality of processingelements (e.g. 140.1-140.n), at least one switching element (e.g. 130.1)and a plurality of forwarding elements (110.1-110.m). In this particularexample, each of the plurality of processing elements 140.1-140.ncomprises at least one processing unit 140.1.1 capable of processingnetwork traffic to provide a network service. In the case of aprocessing element, processing network traffic comprises managingrouting protocol, managing control signaling, etc. The switching element120.1 is capable of acting as a proxy of the plurality of processingelements 140.1-140.n, forwarding elements 110.1-110.m and switchingelements toward the other elements of the router 100. Furthermore, eachof the plurality of forwarding elements 110.1-110.m comprises a unit(e.g. 110.1.2) capable of processing network traffic to provide anetwork service. In the case of a forwarding element, processing networktraffic may comprise ingress treatment, Access Control List (ACL)treatment, lookup treatment, egress treatment, etc. Each of theplurality of forwarding elements 110.1-110.m is further capable ofreceiving network traffic on the network interface 105.2 of the router100 and delegating processing of network traffic toward at least one ofthe plurality of processing elements 140.1-140.n through the switchingelement 120.1. Each of the forwarding elements 110.1-110.m does not needto specifically address any of the processing elements 140.1-140.n. Theswitching element 120.1, therefore, provides an abstraction of theresources available on the processing element-side toward the forwardingelement-side. Likewise, the switching element 120.1 may also further becapable of acting as a proxy of the plurality of forwarding elements110.1-110.m for treated network traffic received from the processingelements 140.1-140.n toward the forwarding elements 110.1-110.m, therebyproviding an abstraction of the resources available on the forwardingelement-side toward the processing element-side.

Each of the plurality of forwarding elements may further comprise anetwork processing unit 110.1.1 capable of processing network traffic.In such a case, each of the plurality of forwarding elements is furthercapable of using the network processing unit 110.1.1 for processing timecritical network traffic and using the processing unit 110.1.2 fordelegating processing of non-time critical network traffic toward atleast one of the plurality of processing elements 140.1-140.n throughthe at least one switching element 120.1.

The processing unit 110.1.2 of each forwarding element 110.1-110.m mayfurther be capable of communicating with at least one of the pluralityof the processing elements 140.1-140.n without using the proxycapability of the switching element 120.1, but by addressing a specificone of the plurality of processing elements 140.1-140.n. An example ofsuch a communication could relate to signaling traffic (e.g. updatingrouting tables, information related to a routing protocol).

In another exemplary implementation of the present invention, the router100 comprises a network interface (e.g. 105.5, not specifically shown),a forwarding element card (e.g. 110.8, not specifically shown) connectedto the network interface and a switching element card (e.g. 120.3, notspecifically shown). The forwarding element card 110.8, in thisparticular example, has the capabilities to receive network traffic onthe network interface 105.5 to detect that the network traffic requiresfurther treatment from a further card of the router 100 and upondetection, to forward the network traffic to the switching element card120.3 of the router 100. In such a case, the switching element card120.3 is further capable of receiving the network traffic from theforwarding element card 110.8, apply a rate limiting mechanism on thenetwork traffic before forwarding the network traffic to the furthercard. In the preceding example, the further card is assumed to have alower treatment rate than the forwarding element card 110.8. Therefore,the rate limiting mechanism is applied based on the difference betweenthe rate of the received network traffic and the treatment rate of thefurther card.

Furthermore, the switching element card 120.3 may further be capable ofdetermining that the further card is either a further forwarding elementcard (e.g. 110.9, not specifically shown) or a service element card(e.g. 120.2, not specifically shown) and, thereafter, forwarding thenetwork traffic to the card without applying the rate limiting mechanismsince the further card does not have a lower treatment rate.

In a further exemplary implementation of the present invention, therouter 100 comprises a network interface (e.g. 105.4, not specificallyshown), a logical addressing module 150 and a forwarding element card(110.9, not specifically shown). The logical addressing module 150 isshown on FIG. 1 as an entity logically separated from the othercomponents of the router 100. However, the logical addressing module 150could also be co-located with the card themselves or on one cardaccessible from the other ones. The logical addressing module 150 iscapable of maintaining at least one local table associating at least onecard of the router (or a group card under a channel identifier, asdiscussed previously) with at least a portion of at least one serviceprovided by the router 100. The forwarding element card 110.9, in thiscontext, is capable of receiving a packet stream on the networkinterface 105.4, detecting that the packet stream requires furthertreatment from a further card of the router 100. The forwarding elementcard 110.9 does not necessarily identify specifically which of the cardsof the router 100 is the further card, but rather identify that afunction to be applied to the packet stream is not available locally onthe forwarding element card 110.9. Upon detection that the packet streamrequires further treatment, the forwarding element card 110.9 is capableof consulting the local table to find an identifier to which the furthercard is linked. Locating the identifier in the local table is performedbased on information found in the packet stream. The forwarding elementcard 110.9 is then further capable of forwarding the packet streamtoward the further card using the identifier. It should be noted thatthe packet stream is sent toward the further card rather then directlythereto. The information found in the packet stream could be located inthe header of at least one packet of the packet stream. The identifierof the further card can represent either an identifier of the specificfurther card, but can also represent an identifier of a group of card inwhich the further card is a member.

Furthermore, if the router 100 supports the virtual router concept, theat least one local table could represent the information maintained inrelation to a given virtual router. In such a case, the local tableswould be maintained only in element cards of the router that areassociated with the virtual router, thereby insuring better use of therouter 100's resources.

The logical addressing module 150 may further be capable of maintaininga second local table in the further card, which table associates atleast one card of the router with at least one service provided by therouter 100. The local tables maintained by the logical addressing module150 can further associate a range of network addresses with the service.

The forwarding element card 110.9 may further be capable of forwardingthe packet stream toward the further card in the form of an internalpacket by adding a metaheader to each original packet of the packetstream.

In the preceding example, the forwarding element card 110.9 may furtherbe capable of forwarding the packet stream toward the further card byfirst sending it to a switching element card (e.g. 120.4) using theidentifier from the local table. In such a context, the switchingelement card acts as a proxy for the further card toward the forwardingelement card 110.9 and, upon reception of the packet stream from theforwarding element card 110.9, it forwards the packet stream to thefurther card. It may further have to act as a proxy for the forwardingelement card 110.9 toward the further card if the further card needs tosend traffic back to the forwarding element card 110.9.

In yet another implementation of the present invention, the router 100can provide at least one network service. For doing so, it comprises atleast one network interface (e.g. 105.5, not specifically shown), aplurality of forwarding elements (e.g. 110.5-110.7, not specificallyshown) and at least one switching element (e.g. 120.7, not specificallyshown). Each of the plurality of forwarding elements 110.5-110.7 iscapable of receiving network traffic on the at least one networkinterface 105.5 of the router 100, detecting that the network trafficcomprises a request for the at least one service, detecting that atleast one further card of the router 100 needs to receive the networktraffic in order to provide at least a portion of the at least onenetwork service and upon detection, sending the request toward the atleast one further card. In such a case, the action of sending therequest toward the at least one further card is likely to encompass anintermediate action of sending the traffic to the switching element card120.7, which is capable of acting as a proxy of the further card byreceiving the request sent from a first one of the plurality offorwarding elements 110.5 toward the further card.

The switching element card 120.7 may further be capable of determiningthat the further card is a second one of the plurality of forwardingelements 110.6 and forwarding the network traffic thereto.

Furthermore, the router 100 may further comprise a plurality ofprocessing elements (e.g. 140.5-140.7, not specifically shown), whereineach of the processing elements is capable of providing at least aportion of the at least one network service. In such a context, theswitching element 120.7 may be further capable of determining that thefurther card is one of the plurality of processing elements 140.6 andforwarding the network traffic thereto.

Likewise, each of the plurality of forwarding elements 110.5-110.7 mayfurther be capable of determining if the further card is either theforwarding elements 110.6 or the processing element 140.6. If thefurther is the forwarding element card 110.6, the forwarding elementcard 110.5 forwards the network traffic toward the further card byaddressing it to the switching element 120.7. If the further card is theprocessing element 140.6, the forwarding element card 110.5 forwards thenetwork traffic toward the further card by addressing it to a secondswitching element (e.g. 120.8, not specifically shown) capable of actingas a proxy of the further card. This second switching element 120.8receives the request sent from the forwarding element card 110.5.

In turn, the further card may further be capable of forwarding thenetwork traffic back to a further switching element (e.g. 120.9, notspecifically shown) after treatment. The further switching element 120.9is then further capable of forwarding the treated network traffic to afurther forwarding element 110.7 of the plurality of forwarding elements110.5-110.7, which is in turn capable of forwarding the treated networktraffic on a further network interface (e.g. 105.6, not specificallyshown) of the router 100.

Reference is now made to FIG. 7, which shows an exemplary method ofservice provisioning in accordance with the teachings of the presentinvention. The method comprises a first step of receiving a packetstream 810 on at least one network interface of the router 100 in aforwarding element card 110.5. The forwarding element card then detectsthat the packet stream requires further treatment from one of at leastanother card of the router and, upon detection, consults a local table820 associating the at least another card of the router with at least aportion of the network service provided by the router in order to findan identifier to which the at least another card is associated based oninformation found in the packet stream. The forwarding element card110.5 then forwards the packet stream toward the at least another cardwithin the router 830. The step 830 of forwarding is performed at thefirst rate and is likely to be performed toward a switching element card130.5. The switching element card 130.5 may then apply a rate limitingmechanism 840 and may further proceed to a lookup 850 of the furthercard in its local tables. The packets are then further sent toward thefurther card (e.g. a processing element 140.5), may be at a second rate860 lower than the first rate if a rate limiting mechanism was applied.The method may further comprise a step of determining in the switchingelement card 110.5 that the further card has a treatment rate lower thanthe first rate prior to forwarding the packet stream from the switchingelement card 130.5 to the further card 140.5 at a second rate.

Although several preferred embodiments of the present invention havebeen illustrated in the accompanying drawings and described in theforegoing description, it will be understood that the invention is notlimited to the embodiments disclosed, but is capable of numerousrearrangements, modifications and substitutions without departing fromthe teachings of the present invention. For example, even though theFigures present a simple router topology to facilitate understanding,this is not to be construed as a pre-requisite of the present invention.Indeed, the solution applies to routers of various kinds and is alsofitted to large routers. In general, statements made in the descriptionof the present invention do not necessarily limit any of the variousclaimed aspects of the present invention. Moreover, some statements mayapply to some inventive features but not to others. In the drawings,like or similar elements are designated with identical referencenumerals throughout the several views, and the various elements depictedare not necessarily drawn to scale.

What is claimed is:
 1. A router configured to receive an incoming packetstream and to output a corresponding treated packet stream by applyingone or more processing functions to packets in the incoming packetstream that are required for treating the incoming packet streamaccording to an Internet Protocol (IP) service provided by the router,said router comprising: a network interface configured to receive theincoming packet stream, wherein each packet in the packet stream belongsto a flow that is part of the IP service provided by the router; a firstelement card having a forwarding element configured to: determine frominformation in a header of one or more packets in the incoming packetstream that, before leaving the router, the packet stream requires afunction to be applied to the packet stream as part of the IP service;detect that the function to be applied is not locally available on thefirst element card; consult a first local table maintained for the firstelement card, to find an identifier that associates the function to beapplied to the packet stream with a second element card in the routerthat has a processing element configured to treat the packet stream byapplying the required function; and forward the packet stream toward thesecond element card for treatment of the packet stream by the processingelement on the second element card according to the IP service.
 2. Therouter of claim 1, wherein the router includes a third element cardhaving a switching element that, with respect to the forwarding elementon the first element card, is configured to act as a proxy for theprocessing element on the second element card, and wherein theforwarding element is configured to forward the packet stream to theprocessing element by forwarding the packet stream to the switchingelement using the identifier.
 3. The router of claim 2, wherein theswitching element is configured to use the identifier from theforwarding element and a second local table corresponding to the firstlocal table, to forward the packet stream to the processing element onthe second element card.
 4. The router of claim 2, wherein, with respectto the forwarding element on the first element card, the switchingelement further is configured to act as a proxy for the processingelement on the second element card, for sending the packet stream backto the forwarding element, after treatment by the processing element. 5.The router of claim 1, wherein the forwarding element is configured toforward the packet stream toward the processing element on the secondelement card by forwarding internal packets that the forwarding elementforms by adding a meta-header to packets in the packet stream, whichmeta-header indicates a treatment needed for the packets.
 6. The routerof claim 1, wherein: the forwarding element on the first element card isamong a plurality of forwarding elements on one or more first elementcards in the router, said forwarding elements configured to forwardincoming packet streams toward the processing elements for treatment;the processing element on the second element card is among a pluralityof processing elements on one or more second element cards in therouter, said processing elements configured to send treated packetstreams back toward the forwarding elements, for egress from the routeras treated packet streams; and further wherein the router includes aplurality of switching elements on one or more third element cards inthe router, said switching elements configured to act as proxies for theprocessing elements with respect to the forwarding elements, such thatthe forwarding elements forward the incoming packet streams to theswitching elements and the switching elements in turn forward the packetstreams to the processing elements for treatment, and are furtherconfigured to act as proxies for the forwarding elements with respect tothe processing elements, such that the processing elements send treatedpacket streams back to the switching elements and the switching elementsin turn send the treated packet streams back to the forwarding elements.7. The router of claim 6, wherein the router implements a number ofvirtual routers based on dedicated associations between individualforwarding elements or groups of forwarding elements and respective onesof the virtual routers, and further based on shared associations betweenthe switching and processing elements or groups of switching andprocessing elements and respective ones of the virtual routers.
 8. Therouter of claim 1, wherein the router implements a virtual router, andwherein the first local table is maintained only in element cards withinthe router that are associated with the virtual router.
 9. A method in arouter of receiving an incoming packet stream and outputting acorresponding treated packet stream by applying one or more processingfunctions to packets in the incoming packet stream that are required fortreating the incoming packet stream according to an Internet Protocol(IP) service provided by the router, said method comprising: receivingthe incoming packet stream on a network interface of the router, whereineach packet in the packet stream belongs to a flow that is part of theIP service provided by the router; determining from information in aheader of one or more packets in the incoming packet stream that, beforeleaving the router, the packet stream requires a function to be appliedto the packet stream as part of the IP service, said determining done ata first element card that initially receives the incoming packet streamfrom the network interface; detecting at the first element card that thefunction to be applied is not locally available on the first elementcard; consulting a first local table maintained for the first elementcard, to find an identifier that associates the function to be appliedto the packet stream with a second element card in the router that has aprocessing element configured to treat the packet stream by applying therequired function; and forward the packet stream from the first elementcard toward the second element card for treatment of the packet streamby the processing element on the second element card according to the IPservice.